// SHModelEntityReator.h: interface for the SHModelEntityReator class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_SHMODELENTITYREATOR_H__BDF71871_E2CD_49B1_A9F0_8E4E928A1AED__INCLUDED_)
#define AFX_SHMODELENTITYREATOR_H__BDF71871_E2CD_49B1_A9F0_8E4E928A1AED__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class AutoCADModelObserver;

class SHModelEntityReator : public AcDbEntityReactor  
{
	ACRX_DECLARE_MEMBERS(SHModelEntityReator);

public:
	SHModelEntityReator();
	virtual ~SHModelEntityReator();

public:
    virtual void    cancelled(const AcDbObject* obj);
    virtual void    copied(const AcDbObject* obj, const AcDbObject* newObj);
    virtual void    erased(const AcDbObject* obj, Adesk::Boolean pErasing = Adesk::kTrue);
    virtual void    goodbye(const AcDbObject* obj);
    virtual void    openedForModify(const AcDbObject* obj);
    virtual void    modified(const AcDbObject* obj);
    virtual void    subObjModified(const AcDbObject* obj, const AcDbObject* subObj);
    virtual void    modifyUndone(const AcDbObject* obj);
    virtual void    modifiedXData(const AcDbObject* obj);
    virtual void    unappended(const AcDbObject* obj);
    virtual void    reappended(const AcDbObject* obj);
    virtual void    objectClosed(const AcDbObjectId objId);

	void SetObserver(AutoCADModelObserver* pObserver){
		m_pObserver = pObserver;
	}

private:
	AutoCADModelObserver* m_pObserver;
};

#endif // !defined(AFX_SHMODELENTITYREATOR_H__BDF71871_E2CD_49B1_A9F0_8E4E928A1AED__INCLUDED_)
